The present invention relates to the field of user interfaces for software applications, and in particular to methods and apparatus for displaying data and controls for manipulating data. Windowed operating systems allow many applications or documents to be on screen at the same time. While multiple windows are useful for multi-tasking and comparing information, displaying a large number of windows simultaneously, with their assorted toolbars, icons, menus, and other displays, can be distracting to users and reduce their efficiency. Additionally, displaying multiple windows simultaneously tends to reduce the amount of screen space available for performing any given task, which further reduces user efficiency.
To alleviate the visual clutter associated with the display of multiple windows simultaneously, some applications employ specially-designed full screen modes that feature a subset of the application's capabilities. These types of full-screen modes trade functionality for simplified modes of operations suited to only a few tasks, such as movie playback or photo comparison. Other applications provide methods of quickly showing and hiding different controls while focusing on a single, full-screen view of the data. However, these applications do not allow users to quickly access any given application control or function. Moreover, these applications do not allow users to quickly change the view of the data, or to quickly view different data sets simultaneously, unlike multiple window user interfaces. Furthermore, many application full-screen modes cannot be easily configured to display specific controls or application functions. Typically, users must manually configure the controls and data views of a full-screen mode in advance.
Therefore, there is an unmet need for an application user interface that combines the advantages of multiple window and full-screen user interfaces to allow users to efficiently multitask as well as focus on specific tasks without distractions from extraneous windows and controls. There is also an unmet need for an application user interface that enables users to quickly access different types of application controls and functions and to easily change between different tasks. There is also an unmet need for an application user interface to be easily and intuitively customized according to user preferences at any time during execution.